package 二分快速幂.pow;

/**
 * TODO
 *
 * @className: pow2
 * @description: TODO
 * @author: 等什么柠檬君
 * @date: 2022-05-09 15:57
 **/
public class pow2 {
    /**
     * 此方法 O(n)超时
     * @param args
     */
    public static void main(String[] args) {
//        double x = 2.10000;
//        int n = 3;
//        double x = 2.00000;
//        int n = 10;
//        double x = 2.00000;
//        int n = -2;
        double x = 2.00000;
//        int n =   -2147483648;
        int n =   -2;
        System.out.println(myPow(x,n));
    }
    public static double myPow(double x, int n) {
        double ans = 1;
        if (x == 1){
            return 1;
        }
        if (n > 0){
            for (int i = 0; i < n; i++) {
                ans*=x;
            }
        }
        if (n < 0){
            System.out.println("< 0");
            System.out.println( -(n));
            System.out.println(-(n));
            int target = n==-2147483648?-2147483647:n;
            for (int i = 0; i < -(target); i++) {
                ans *= x;
            }
            ans = 1 / ans;
        }
//        System.out.println((10-n+1)+" 次幂 "+" 结果 "+x);
//        if (n == 1){
//            return x;
//        }
        return ans;
    }
}
